Matching past post-approved transactions with past pre-approved transactions using machine learning systems

ABSTRACT

Systems and methods for improving a computing system comparing past post-approved transaction records to past pre-approved transaction records are described herein. In an embodiment, a server stores a first plurality of digital electronic records identifying a plurality of past post-approved transactions by a first entity and a second plurality of digital electronic records for the first entity identifying a plurality of past pre-approved transactions by the first entity. The server uses a first machine learning system to determine that a subset of the first plurality of digital electronic records which identify a subset of the plurality of past post-approved transactions correspond to one or more pre-identified categories and a second machine learning system to match one or more particular digital electronic records of the subset of the first plurality of digital electronic records with one or more records of the second plurality of digital electronic records.

BENEFIT CLAIM

This application claims the benefit of Provisional Appln. 62/855,776, filed May 31, 2019, the entire contents of which is hereby incorporated by reference as if fully set forth herein, under 35 U.S.C. § 119(e).

FIELD OF THE DISCLOSURE

One technical field of the present disclosure is computer-implemented machine learning algorithms applied to compare transaction records. Another technical field is machine-implemented recommendation systems.

BACKGROUND

The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section. Further, it should not be assumed that any of the approaches described in this section are well-understood, routine, or conventional merely by virtue of their inclusion in this section.

Large entities, such as large companies or other organizations, often procure goods and services through a procurement system. A procurement system allows the large entities to procure items or services in bulk and/or through preferential contracts with goods and/or services providers. Through a procurement system, a large entity can specify preferred providers so that goods and/or services are obtained in an inexpensive and/or quality manner. Thus, it is often beneficial for large entities to obtain goods or services through a procurement system than it would be to have individuals purchase similar goods or services and request reimbursement for the expenses afterwards.

Unfortunately, despite utilizing procurement systems, many goods or services that could have been obtained through the procurement system are often obtained externally and submitted as expenses. While individual expenses may seem inconsequential, a large company which receives a large number of expense reimbursement requests can lose a lot in terms of quality of goods and/or services or cost when items are expensed instead of procured.

While it would be beneficial to be able to identify all submitted expenses that could have been procured, the identification of procurable expenses is a difficult problem when a large number of transactions are compared. This problem is exacerbated when procurements from the community are utilized in order to provide additional procurement opportunities that an entity as a whole is not utilizing.

Performing a transaction by transaction comparison can be computationally expensive and require a large amount of memory. As more records become available, more transactions can be identified as procurable, but at a higher cost in computing power and time to identify all such opportunities.

Thus, there is a need for a system which can match post-approved transaction records to other pre-approved transaction records with high accuracy but low computational cost or memory requirements. More specifically, there is a need for a system which reduces the number of operations required by the server computer while still obtaining similar results.

SUMMARY

The appended claims may serve as a summary of the disclosure.

BRIEF DESCRIPTION OF THE DRAWINGS

In the drawings:

FIG. 1 is a block diagram of an example computer network system in which various embodiments may be practiced.

FIG. 2 is a flow diagram depicting an example method for identifying past post-approved transactions as possible pre-approved transactions.

FIG. 3 depicts an example graphical user interface for displaying information relating to past post-approved transaction records that have been identified as possible pre-approved transactions.

FIG. 4 depicts an example graphical user interface for displaying more detailed information regarding transaction records in a particular category.

FIG. 5 depicts an example graphical user interface for displaying more detailed information regarding transaction records for all categories.

FIG. 6 depicts an example graphical user interface for displaying recommendations based on normalized categories of past post-approved transactions.

FIG. 7 is a block diagram that illustrates a computer system upon which an embodiment of the disclosure may be implemented.

DETAILED DESCRIPTION

In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present disclosure. It will be apparent, however, that embodiments may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to avoid unnecessarily obscuring the present disclosure.

General Overview

In an embodiment, a server computer stores expense records which identify past post-approved transactions and invoice records from a procurement system which identify past pre-approved transactions. For a particular entity, the server normalizes the expense records to a plurality of categories that have been identified as procurable or not procurable categories. For expense records that were normalized to a procurable category, the server then compares the expense records to invoice records of the particular entity. Any remaining expense records that were normalized to a procurable category but not matched to invoice records of the particular entity are then compared to invoice records of other entities. The server identifies transactions corresponding to the matched records as procurable and causes display of information identifying past expense transactions as procurable based on the particular entity's records and as procurable based on entity records of other entities.

In an embodiment, a method comprises storing a first plurality of digital electronic records for a first entity, the first plurality of digital electronic records identifying a plurality of past post-approved transactions by the first entity; storing a second plurality of digital electronic records for the first entity, the second plurality of digital electronic records identifying a plurality of past pre-approved transactions by the first entity; using a first machine learning system, determining that a subset of the first plurality of digital electronic records which identify a subset of the plurality of past post-approved transactions correspond to one or more pre-identified categories; using a second machine learning system, matching one or more particular digital electronic records of the subset of the first plurality of digital electronic records with one or more records of the second plurality of digital electronic records; causing displaying, on a client computing device, digital electronic data identifying transactions corresponding to the one or more particular digital electronic records as potential pre-approved transactions.

Structural Overview

FIG. 1 is a block diagram of an example computer network system in which various embodiments may be practiced. FIG. 1 is shown in simplified, schematic format for purposes of illustrating a clear example and other embodiments may include other elements.

In an embodiment, a networked computer system comprises a server computer (“server” for short) 102, first entity computing device 120 and second entity computing device 130, which are communicatively coupled directly or indirectly via one or more networks. The server 120, entity computers 120 and 130 and other elements of the system may each comprise an interface compatible with the one or more networks and are programmed or configured to use standardized protocols for communication across the networks such as TCP/IP, Bluetooth, and higher-layer protocols such as HTTP, TLS, and the like.

Server 102 may be implemented using a server-class computer or other computers having one or more processor cores, co-processors, or other computers. Server 102 may be a physical server computer and/or a virtual server instance stored in a data center, such as through cloud computing.

Server 102 stores entity data 104, pre-approved categories 114, one or more machine learning system(s) 112, possible post-approved transactions data 116, and transaction display instructions 118. Computer executable instructions described herein may be in machine executable code in the instruction set of a CPU and may have been compiled based upon source code written in JAVA, C, C++, OBJECTIVE-C, or any other human-readable programming language or environment, alone or in combination with scripts in JAVASCRIPT, other scripting languages and other programming source text. In another embodiment, the programmed instructions also may represent one or more files or projects of source code that are digitally stored in a mass storage device such as non-volatile RAM or disk storage, in the systems of FIG. 1 or a separate repository system, which when compiled or interpreted cause generating executable instructions which when executed cause the computer to perform the functions or operations that are described herein with reference to those instructions. In other words, the drawing figure may represent the manner in which programmers or software developers organize and arrange source code for later compilation into an executable, or interpretation into bytecode or the equivalent, for execution by the server 102.

Entity data 104 comprises pre-approved transaction data 106, post-approved transaction data 108, and entity relationship data 110. The entity data 104 may be stored as individual records, such as pre-approved transaction records and post-approved transaction records, and/or as elements in a transactional database. While FIG. 1 depicts the records being stored in the server 102, the records may be stored in an external system, such as an external physical server and/or cloud server, and accessed by server 102.

Pre-approved transaction data 106 comprises one or more transaction records that have been defined as pre-approved transactions. For example, transactions executed through a procurement interface may be identified as pre-approved transactions. Post-approved transaction data 108 comprises one or more transaction records that have been defined as post-approved transactions. For example, transactions that are submitted for expense reimbursement may be identified as post-approved transactions. The transaction records may include one or more structured data fields and/or one or more unstructured data fields. Example of data fields comprise entity-defined categories, transaction amount, transaction location, transaction description, transaction date, merchant identifier, and/or other structured or non-structured fields provided by an interface for submitting procurement requests and/or expenses for reimbursement.

Relationship data 110 comprises one or more records defining relationships between a procuring entity and a providing entity. For example, the server 102 may store data identifying one or more contracts between a procuring entity and a providing entity which specify one or more products or services that are provided by the providing entity for procurement by the procuring entity. Additionally or alternatively, the server 102 may store data identifying that one or more contracts exist between the procuring entity and the providing entity without specifying the items provided for procurement.

Machine learning system(s) 112 comprise one or more machine learning models which are used to group post-approved transaction records into pre-approved categories, match pre-approved transaction records with post-approved transaction records, and/or group post-approved transaction records into one or more clusters. Example machine learning systems comprise logistic regression, random forest, decision tree learning, association rule learning, artificial neural network, support vector machines, and/or Bayesian networks. As a practical example, a term frequency-inverse document frequency model (TF-IDF) may be utilized in conjunction with a logistic regression machine learning system to categorize post-approved transaction records. As another example, a normalization system such a fuzzy matching machine learning system may be used to normalize unstructured data fields in a plurality of records.

In an embodiment, one or more machine learning system(s) 112 are used to categorize post-approved transactions into a plurality of categories. The plurality of categories may comprise categories designated as pre-approved categories 114 and/or categories designated as not pre-approved categories. One or more post-approved transactions that are categorized as pre-approved categories 114 may then be matched with pre-approved transaction records to create possible post-approved transactions data 116.

In an embodiment, the server 102 executes transaction display instructions 118. The server 102 may also be executing additional code, such as code for the machine learning system (s) 112, code for an expense system, and/or code for a procurement system. The server 102 may generate and transmit alerts, notifications, recommendations, graphical user interfaces, and other information through the transaction display instructions. For example, the transaction display instructions may be a set of instructions within a software-as-a-service (SaaS) application that the first entity computing device 120 and/or second entity computing device 130 accesses using a web browser hosted at the computing device.

Computer executable instructions described herein may be in machine executable code in the instruction set of a CPU and may have been compiled based upon source code written in JAVA, C, C++, OBJECTIVE-C, or any other human-readable programming language or environment, alone or in combination with scripts in JAVASCRIPT, other scripting languages and other programming source text. In another embodiment, the programmed instructions also may represent one or more files or projects of source code that are digitally stored in a mass storage device such as non-volatile RAM or disk storage, in the systems of FIG. 1 or a separate repository system, which when compiled or interpreted cause generating executable instructions which when executed cause the computer to perform the functions or operations that are described herein with reference to those instructions. In other words, the drawing figure may represent the manner in which programmers or software developers organize and arrange source code for later compilation into an executable, or interpretation into bytecode or the equivalent, for execution by the server 102.

The server 102 is accessible over a network by multiple computing devices, such as entity computing device 120 and/or second entity computing device 130. Although FIG. 1 depicts only one computing device per entity, any number of other computing devices may be registered with server 102 at any given time. Thus, the elements in FIG. 1 are intended to represent one workable embodiment but are not intended to constrain or limit the number of elements that could be used in other embodiments. In an embodiment, the first entity computing device 120 may comprise a plurality of computing devices that are restricted to only users from a single entity. In other words, although more than one computer may be used, only verified users of a single entity may access specific transaction records stored in the server 102 from these computers. Any applicable means of restricting unauthorized users from accessing specific records and/or information stored on the server 102 may be used (for example, password and username, two-step authentication, or other means).

The computing devices such as the first entity computing device 120 and/or second entity computing device 130 may comprise computers that include hardware capable of communicatively coupling the computers to one or more server computers, such as server computer 102 over one or more service providers. For example, first entity computing device 120 and/or second entity computing device 130 may include a network card that communicates with server computer 102 through home or office wireless routers (not illustrated in FIG. 1) coupled to an internet service provider. The first entity computing device 120 and/or second entity computing device 130 may be any of smart phones, personal computers, tablet computing devices, PDAs, laptops, or any other computing devices capable of transmitting and receiving information and performing the functions described herein.

One or more networks (not shown) may be implemented by any medium or mechanism that provides for the exchange of data between the various elements of FIG. 1. Examples of the one or more networks include, without limitation, a cellular network, communicatively coupled with a data connection to the computing devices over a cellular antenna, one or more Local Area Networks (LANs), one or more Wide Area Networks (WANs), one or more Ethernets or the Internet, or one or more terrestrial, satellite or wireless links, or a combination thereof. The one or more networks may comprise one or more local area networks, wide area networks, and/or internetworks. The various elements of FIG. 1 may also have direct (wired or wireless) communications links, depending upon a particular implementation.

Stored Transaction Data

FIG. 2 is a flow diagram depicting an example method for identifying past post-approved transactions as possible pre-approved transactions.

At step 202, past post-approved transaction records are stored for a first entity. For example, a management computer system may store an entity profile that identifies an entity which has access to software provided by the management computer system, such as a software-as-a-service (SaaS) application. The first entity may be an organizational grouping which includes a plurality of individual accounts. For example, an entity may refer to a business with individual employees of the business maintaining individual accounts. Thus, while the management computer system maintains a plurality of first accounts, the plurality of first accounts comprise accounts that belong to the first entity.

In an embodiment, the first entity has access to a management computer system programmed with options for performing a plurality of tasks. For example, the SaaS application provided by the management computer system may include options for performing various tasks. The various tasks may include approval tasks, such as approving expense reports, sourcing tasks, such as procurement transactions between different computing devices, reviewing tasks, such as reviewing contracts or other documents, and/or document generation tasks, such as generation of expense reports and invoices. The above listed tasks are intended as examples and the plurality of tasks may differ depending on the type of options presented by the management computer system.

The server 102 may store post-approved transaction records for a plurality of entities. A post-approved transaction, as used herein, refers to a transaction that is approved after the performance of a transaction through a post-approved transaction record. For example, expense transactions may be reimbursed through expense reimbursement requests submitted to the server 102 from the first entity computing device 120. The post-approved transaction records may include a plurality of structured and/or unstructured data fields, such as an expense number, categories defined by the first entity, merchant identification, transaction amount, location, description, reason, transaction date, reimbursement request submitter, and/or reimbursement request approver. Unstructured data fields, as used herein, refers to data fields which accept unstructured data, such as a description field which accepts string input. Structured data fields, as used herein, refers to data fields which accept structured data, such as a transaction date field which accepts date input in one or more specific formats.

At step 204, past pre-approved transaction records are stored for a plurality of entities including the first entity. A pre-approved transaction, as used herein, refers to a transaction that is approved prior to the performance of the transaction. For example, procurement from contracted providers and/or through a procurement system of one or more goods or services may be pre-approved such that a representative of the first entity may perform the transaction on behalf of the entity. The pre-approved transactions may correspond to pre-approved transaction records, such as invoices for procured items. The pre-approved transaction records may also include a plurality of structured and/or unstructured data fields, such as categories defined by the first entity, merchant information, transaction amount, location, description, transaction date, and/or procuring user.

In an embodiment, the server 102 additionally stores data relating to one or more provider entities. For example, the server 102 may provide a procurement system in which provider entities make goods and/or services available for procurement. The server 102 may store data identifying past transactions of the provider entities, such as goods or services provided, costs per unit, transaction dates, transaction amounts, transaction dates, and/or other data relating to past transactions of the provider entity through the procurement system. Additionally or alternatively, the server 102 may store data records identifying goods or services generally made available by one or more provider entities. For example, the server 102 may store a catalog of goods or services for a provider entity with corresponding information, such as descriptions or costs

In an embodiment, the server 102 stores relationship data identifying relationships between provider entities and other entities. For example, the server 102 may store data that identifies a contract between a first entity and a specific provider entity. The relationship data may range in breadth from merely identifying the specific entities to identifying terms of the relationship, such as types of goods or services provided by the provider entity, amounts in which the goods or services are to be provided, costs or discounts, and/or any other terms of the relationship between the two entities.

Category Matching

At step 206, past post-approved transaction records are matched to a plurality of categories which include possible pre-approved categories and non-possible pre-approved categories. For example, a plurality of categories may be defined as outputs in training data for a machine learning system. Examples of categories include procurement, office supplies, internet, phone, dues/membership/subscriptions, employee training, entertainment, meals, gifts, rental car, airfare, and lodging. In an embodiment, the plurality of categories to which the records are matched may differ from the entity defined categories. For example, an entity may define its own categories for identifying transactions that overlap, partially overlap, or do not overlap with the matching categories. Thus, while matching the records to categories may incorporate entity-defined category data, the transaction record's initial category may not be dispositive in matching the transaction record to one of the plurality of categories.

Some of the categories may be defined as possible pre-approved categories. For example, procurement, office supplies, internet, dues/membership/subscription, and employee training may be defined as possibly procurable expenses while entertainment, meals, gifts, rental car, airfare, and lodging may be defined as non-possible pre-approved categories.

Server 102 may use a machine learning system trained to normalize transactions into the plurality of predefined categories. For example, the machine learning system may be trained using expense lines as inputs with the normalized categories as outputs. As a practical example, the server 102 may train a TF-IDF model using logistic regression where the training datasets comprise expense records that have been previously matched to normalized categories, the inputs comprise one or more fields of the transaction records, and the outputs comprise each normalized category.

By normalizing transactions to a plurality of pre-defined categories, the methods increase the efficiency at which the server 102 is able to process large amounts of data to determine which previous post-approved transactions could be identified as possible pre-approved transactions. Specifically, the normalizing techniques described herein allow the server 102 to prune transaction records from future matching steps if the transaction records are not normalized to one of the categories defined as possible pre-approved categories. Thus, the server 102 is able to perform the methods described herein with a large number of transaction records at faster speeds and using less processing power as particular records are removed prior to the matching steps based on the normalization.

Pre-Approved Transaction Matching

At step 208, past post-approved transaction records in the possible pre-approved categories are matched with past pre-approved records from the first entity. For example, the server 102 may compare past post-approved transaction records that have been normalized to one of the possible pre-approved categories with past pre-approved transaction records based on one or more fields of the transaction records.

In an embodiment, the server 102 converts one or more fields of each past post-approved transaction and one or more fields of the past pre-approved transaction records into one or more vectors using one or more machine learning systems. For example, the Word2vec machine learning algorithm may be used to convert words in a description field and/or a reason field of the transaction records into one or more vectors.

Given possible differences in nature of post-approved transaction records from pre-approved transaction records, the selected fields for conversion into vectors may differ. For example, the server 102 may convert a description field and a reason field from the past post-approved transaction records into a vector but only the description field from the past pre-approved transaction records. Other example embodiments may include merchant fields, category fields, or item identifier fields that additionally or alternatively are used to generate a vector for one or more of the past post-approved transaction records or past pre-approved transaction records.

In an embodiment, the server 102 uses a machine learning system to compare vectors generated from the past post-approved transaction records of the first entity with vectors generated from the past pre-approved transaction records of the first entity. For instance, for each past post-approved transaction record, the server 102 may compute a cosine similarity between the vector corresponding to the past post-approved transaction record and the vectors corresponding to each past pre-approved transaction record until a match is identified and/or all past vectors corresponding to past pre-approved transaction records have been compared to the vector of the past post-approved transaction record. In an embodiment, the server 102 identifies a match if the cosine similarity between two vectors is greater than a threshold value, such as 70%.

By initially comparing past post-approved transaction records with past pre-approved transaction records of the same entity, the system is able to reduce the number of comparisons that need to be made to match records. For example, each past post-approved transaction record that has been matched with a past pre-approved transaction record may be set aside as matched records. Step 210 may then proceed with the remaining unmatched records. Given that the number of records for past pre-approved transactions for other users often far exceeds the number of records for past pre-approved transactions for a single user, this initial step reduces the amount of processing that needs to be performed substantially by removing post-approved transaction records which can be matched to pre-approved transaction records of the first entity.

At step 210, past post-approved transaction records in the possible pre-approved categories are matched with past pre-approved transaction records from one or more entities other than the first entity. For example, the server 102 may use the Word2vec machine learning algorithm to generate vectors for past pre-approved transaction records of other users of a procurement system provided by server 102, thereby allowing for records to be compared across a plurality of entities. The server 102 may compare vectors corresponding to post-approved transaction records of the first entity that were not matched in step 208 with vectors corresponding to past pre-approved transactions of the other users of the procurement system, such as by computing a cosine similarity between the vectors and determining that the vectors match if the cosine similarity is greater than a threshold value, such as 70%.

In an embodiment, the server 102 further reduces the processing power and time required to match past post-approved transaction records of a first entity with past pre-approved transaction records of a plurality of other entities by intelligently reducing the number of past pre-approved transaction records of the plurality of other entities while keeping high information fidelity. For example, server 102 may utilize a clustering algorithm, such as the K Means clustering algorithm, to cluster the pre-approved transaction records of the plurality of other entities into a plurality of clusters. The server 102 may then select, randomly or pseudo-randomly, a subset of the past pre-approved transaction records in each cluster to compare to the past post-approved transaction records. For example, the server 102 may select 10% of the records in each cluster for comparison. The number of clusters may be predetermined, such as fifty clusters, and/or determined based on the number of pre-approved transaction records for comparison, such as one cluster per thousand records.

By clustering the vectorized past pre-approved transaction records of the plurality of other entities, the server 102 is able to compute the comparison between past post-approved transaction records of the first entity and the past pre-approved transaction records of a plurality of second entities much faster. For example, computation time may be reduced by as much as 90% while producing an equivalent number of matches for the post-approved transaction records by clustering the past pre-approved transaction records and selecting a subset of each cluster for comparison.

At step 212, transactions corresponding to records matched in steps 208 and 210 are identified as possible pre-approved transactions. For example, the server 102 may identify expense transaction records that were matched to invoices in step 208 as procurable based on the first entity's information and expense transaction records that were matched to invoices of others in step 210 as procurable based on entity information other than the first entity's.

While FIG. 2 depicts both steps 208 and 210 being performed, in an embodiment either step 208 or step 210 can be performed without the other. For example, server 102 may only compare past post-approved transaction records with pre-approved transaction records of the first entity or may broadly compare post-approved transaction records of the first entity to pre-approved transaction records of a plurality of other entities, including or excluding the first entity, without first comparing the post-approved transaction records to pre-approved transaction records of the first entity.

In an embodiment, the server 102 causes display of a graphical user interface which identifies past post-approved transaction records as possible pre-approved transactions. For instance, the server 102 may display a percentage of previous post-approved transactions that are potential pre-approved transactions based on the first entities data, that are potential pre-approved transactions based on the other entities' data, and/or that are not potential pre-approved transactions. Example graphical user interfaces for identifying past post-approved transaction records as possible pre-approved transactions are described further herein.

In addition to displaying information relating to past post-approved transaction records that have been identified as possible pre-approved transaction records, the systems and methods may utilize the systems and methods described herein to perform one or more of optional steps 212, 214, and/or 216.

Identifying Entities

In an embodiment, at step 212, entities are identified for performing possible pre-approved transactions based on past pre-approved transaction data for the first entity. For example, the server 102 may identify a provider entity for each past pre-approved transaction that has been matched to a post-approved transaction. Identifying the entity may comprise determining the entity from a “merchant” field in the record and/or from stored data regarding the transaction between two entities.

The server 102 may determine, for each of the possible pre-approved transactions that are based on past pre-approved transaction data for the first entity, one or more entities capable of performing the pre-approved transactions. The server 102 may further aggregate identifications of the one or more entities. For example, the server 102 may determine a number of possible pre-approved transactions that could be performed through each of the one or more entities and/or a total dollar amount corresponding to transactions that could be performed through each of the one or more entities. Server 102 may aggregate dollar amounts from the “amount” fields in the past post-approved transaction records corresponding to the possible pre-approved transactions.

In an embodiment, the server 102 calculates an amount of savings of switching to the possible pre-approved transactions from the post-approved transaction records. For instance, for each record matched past post-approved transaction record of the first entity, the server 102 may identify a merchant for the corresponding past pre-approved transaction record, a total amount for a particular item, and the total amount for the particular item in the matching past pre-approved transaction record. The server 102 may compute a difference between the total amount in the past post-approved transaction record and the total amount in the past pre-approved transaction record. The server 102 may then increment a savings value for the merchant by the computed difference. In an embodiment, the server 102 causes display of the savings value for the merchant and/or an overall savings value for utilizing the merchant for possible pre-approved transaction records instead of post-approved transaction records.

Generating Recommendations

In an embodiment, at step 214, the server 102 generates recommendations for actions to take based on categories of possible pre-approved transactions. For example, the server 102 may store one or more recommendations for each of the plurality of pre-defined categories identified as possible pre-approved transaction records. The server 102 may be programmed or configured to provide recommendations for a particular category when past post-approved transactions that have been normalized to the particular category are matched with past pre-approved transactions. Thus, the server 102 is able to provide recommendations based on the normalized categories in addition to the matching data.

In an embodiment, the server 102 displays recommendations in a graphical user interface which displays data for first entity-defined categories. The server 102 may identify transactions within the first entity-defined categories that have been matched to past pre-approved transaction records. For the matched transactions, the server 102 may identify a normalized category for the transaction and display a recommendation based on the normalized category. Thus, the first entity-defined categories may include recommendations from a plurality of normalized categories.

In an embodiment, the server 102 ranks recommendations by a number of transactions that were normalized to a category corresponding to the recommendation and/or a total amount in transactions that were normalized to a category corresponding to the recommendation. For example, if a customer-defined category of “overhead” includes ten transactions that were normalized to the “Office Supplies” category and three transactions that were normalized to the “Internet” category, the recommendations for the “Office Supplies” category may be displayed ahead of and/or in place of the recommendations for the “Internet” category. Additionally and/or alternatively, if the three transactions normalized to the “Internet” category corresponded to a total of $5,000 while the ten transactions normalized to the “Office Supplies” category corresponded to $500, then the recommendations for the “Internet” category may be displayed ahead of and/or in place of the recommendations for the “Office Supplies” category.

Query Optimization

In an embodiment, at step 216, previous queries are optimized based on possible pre-approved transactions and previous queries. For example, the server 102 may identify, for a particular post-approved transaction record that was matched to a pre-approved transaction records, one or more queries through the procurement system that correspond to the particular post-approved transaction. For example, the server 102 may store queries made by the first entity through a procurement system with data identifying the date and/or time of the queries. The server 102 may identify a date of the particular post-approved transaction record and select a subset of queries made by the first entity that are within a specific time period prior to the post-approved transaction. The server 102 may then compute a similarity value between the vectorized description for the particular post-approved transaction record and vectorized versions of the subset of the queries. If the cosine similarity between a query and the post-approved transaction record is greater than a threshold value, such as 70%, the server 102 may determine that the query corresponds to the post-approved transaction record.

With a query matched to a past post-approved transaction record, the server 102 may identify one or more optimized queries. For example, the server 102 may identify a merchant and/or item in the past pre-approved transaction record that corresponds to the past post-approved transaction record and determine whether the initial query would result in the merchant and/or item. If the initial query would not result in the merchant and/or item, the server 102 may modify the query such that the merchant and/or item would be a result of the query, such as modifying one or more words in the query to match one or more words in the description of the merchant and/or item. The server 102 may then store the optimized query with data corresponding the optimized query to the one or more initial queries.

In an embodiment, in response to receiving a query that matched the one or more initial queries, the server 102 may display a recommendation to replace the query with the stored optimized query. For example, the server 102 may compare future queries received by the first entity with the one or more initial queries using any known linguistic comparison techniques. If a future query matches the initial query, the server 102 may display a notification identifying the optimized query as a possible alternative to the future query.

Contract Matching

In an embodiment, the server 102 matches past post-approved transaction records to relationship data stored in server 102 defining relationships between the first entity and one or more other entities. For example, the server 102 may store contract data identifying an agreement between a particular provider entity and the first entity for the particular provider entity to provide one or more goods and/or services to the first entity.

In an embodiment, the server 102 matches any post approved-transaction records that have been normalized into one of the possible pre-approved transaction records categories to one or items and/or services provided by the one or more other entities. For example, the server 102 may first identify the one or more other entities with which the first entity has a relationship based on the stored relationship data. The server 102 may then compare vectorized past post-approved transaction records to vectorized descriptions of items and/or services of the one or more other entities from stored catalog data for the one or more other entities.

Additionally or alternatively, the server 102 may compare the vectorized past post-approved transaction records to past pre-approved transaction records corresponding to the one or more other entities. For example, after categorizing the post-approved transaction records into the possible pre-approved transaction records categories, the server 102 may initially perform the comparisons described herein with respect to records corresponding to the one or more other entities.

As a practical example, if the first entity has a relationship with a particular second entity, the server 102 may first compare the past post-approved transaction records with past pre-approved transaction records between the first entity and the particular second entity, followed by comparing them with all other past pre-approved transaction records of the first entity, followed by comparing them with past pre-approved transaction records between any other entities and the particular second entity, followed by comparing them with past pre-approved transaction records of entities other than the first entity and the particular second entity.

If the server 102 matches the past post-approved transaction records to a transaction record corresponding to a particular second entity with which the first entity has a relationship defined by stored entity relationship data, the server 102 may additionally recommend utilizing the particular second entity for future transactions. Additionally or alternatively, the server 102 may aggregate records that are matched to the particular second entity to identify a number of past post-approved transactions and/or a total cost of past post-approved transactions that could have been performed as past pre-approved transactions through the particular second entity.

Example Graphical User Interface

In an embodiment, the server 102 provides a graphical user interface for depicting past post-approved transaction records that have been matched to past pre-approved transaction records. The graphical user interface may identify aggregated values, such as a total cost of past post-approved transactions over a particular period of time that have been categorized as possible pre-approved transactions based on records of the first entity and/or based on records of a plurality of second entities.

FIG. 3 depicts an example graphical user interface for displaying information relating to past post-approved transaction records that have been identified as possible pre-approved transactions. Interface 300 comprises total expense 302 and total procurable 304. Total expense comprises a total cost of past post-approved transaction records. Total procurable 304 comprises a total cost of the subset of past post-approved transaction records that have been matched to past pre-approved transaction records.

FIG. 3 further comprises expense category graph 306. Expense category graph 306 comprises a breakdown of past post-approved transaction records by expense categories 308. The expense categories 308 comprise a breakdown of past post-approved transaction records by user defined categories. For example, each past post-approved transaction record may comprise data identifying a user defined category to which the record corresponds. Expense category graph 306 thus provides data indicating, for each user defined category, a total cost of the past post-approved transaction records for the category over a specific period of time, wherein a first portion of the graph identifies a total cost of past post-approved transaction records which have been matched to past pre-approved transaction records of the same entity, a second portion of the graph identifies a total cost of past post-approved transaction records which have been matched to past pre-approved transactions records of one or more other entities, and a third portion identifies a total cost of past post-approved transaction records that were not matched to past pre-approved transaction records.

The expense category graph 306 provides a unique graphical user interface wherein procurement opportunities are depicted in a streamlined and convenient manner. In an embodiment, the expense category 306 is configured to provide additional precise information in response to one or more user controls. For example, in response to detecting that a user's cursor has been moved to a portion of the graph, the server 102 may be configured to cause displaying of an exact cost amount corresponding to the portion of the graph. For example, if you user moves a cursor over the “Procurable by You” section of the “Office Supplies” category in FIG. 3, the server 102 may cause display of a window with text identifying the category as “Office Supplies”, the portion as “Procurable by You”, and the total amount for the portion of the graph as “36,538”.

In an embodiment, the graphical user interface is configured to display additional transaction information in response to receiving a selection of a particular category. FIG. 4 depicts an example graphical user interface for displaying more detailed information regarding transaction records in a particular category. Interface 400 comprises individual record data 402 for a particular category 404. In an embodiment, the particular category 404 option can be selected to cause the graphical user interface to display data for a different category. The period 406 comprises controls for selecting a time period for viewing transaction records, such as reviewing records from the past 12 months, 6 months, 1 month, etc. Procurable opportunity 408 comprises controls for selecting a view of based on whether they were matched to past pre-approved transactions of the same entity and/or other entities.

Interface 400 identifies, for each past post-approved transaction record, a date of the record, a submitter of the record, a category of the record, a cost of the record, a merchant for the record, and a description of the record. In an embodiment, the interface 400 additionally identifies whether the record was identified as procurable based on records from the viewing entity or based on records from one or more other entities.

Similarly, an interface may display past post-approved transaction records that have not been narrowed to a particular category. FIG. 5 depicts an example graphical user interface for displaying more detailed information regarding transaction records for all categories. Thus, interface 500 may comprise similar information for each transaction as interface 400, such as expense category, expense cost, expense date, description, etc.

Server 102 may additionally or alternatively cause display of one or more recommendations based on normalized categories. FIG. 6 depicts an example graphical user interface for displaying recommendations based on normalized categories of past post-approved transactions. The interface 600 may be displayed as part of a graphical user interface depicting transactions for a particular user defined category, such as FIG. 4, and may include recommendations based on the normalized categories for transactions within the particular user defined categories. Recommendations may be displayed with priority given to the normalized category which appears most frequently and/or corresponds to a highest cost in the user defined category. For example, if the user defined category of “Travel” includes 400 procurable expense transactions from a normalized category of “Hotel” and 700 procurable expense transactions from a normalized category of “Flight”, the server 102 may display the recommendations for the “Flight” category above recommendations for the “Hotel” category.

In an embodiment, interface 600 comprises recommendations 602, task creation option 604, and action option 606. Recommendations 602 comprise recommendations that correspond to normalize categories and are displayed when greater than a threshold number of transactions and/or transaction cost of a normalized category are identified as procurable transactions that were expensed. Task creation option 604 comprises an option which, if selected, causes the server 102 to create a task object which identifies the recommendation and can be assigned to one or more users. Action option 606 comprises an option which, if selected, causes the server 102 to navigate to a particular page for completing a recommendation, such as navigating to a policy editing page for completing a recommendation of “Update policies”. In an embodiment, when a task is completed through the interface, the recommendation is replaced with a recommendation for the category of a lower priority.

In an embodiment, the server 102 additionally provides a cost comparison in a graphical user interface between the past post-approved transaction records and matched past pre-approved transaction records, thereby displaying a difference in cost for performing the transactions as pre-approved transactions instead of post-approved transactions.

In an embodiment, the graphical user interface further depicts expense filtered by submitter. For example, an interface may display a total cost of expense submitted by a particular submitter, a percentage of expenses and/or expense cost from a particular submitter, individual expense transactions submitted that were identified as procurable for an individual submitter, a total cost of expenses that were identified as procurable submitted by the submitter, and/or a percentage of expenses and/or expense cost of expenses identified as procurable submitted by the particular submitter. The graphical user interface may display the expense information for a single submitter and/or for a plurality of submitters. For example, an interface for a plurality of submitters may show the overall costs and/or percentages while an interface for a particular submitter may display individual transactions submitted by the submitter with corresponding information.

In an embodiment, pre-approved transactions may be matched to post-approved transactions at different times during an expensing process. For example, when a past post-approved transaction record is first placed input into an expensing system, the server 102 may determine whether the past post-approved transaction record could have been a pre-approved transaction. If so, the server 102 may cause display of a notification that the input expense transaction was a procurable opportunity. In an embodiment, the server 102 further causes display of an option for confirming that the expense transaction was procurable or indicating that the server 102 incorrectly identified the transaction as procurable, thereby allowing the system to identify past post-approved transactions on an individual basis such that the system can respond faster to future queries. Additionally, the system is able to notify users as an expense transaction is processed, thereby providing a faster correction.

Benefits of Certain Embodiments

The systems and methods described herein provide a technical solution to a difficult technical problem of comparing matching post-approved transaction records with a large number of pre-approved transaction records in a manner that saves on processing power and memory by applied machine learning algorithms. Techniques described herein allow records to matched efficiently while reducing a number of comparisons that must be performed and reducing the processing power for performing said comparisons. Examples of technical improvements of the systems and methods described herein include the saving on memory and processing power by utilizing normalization techniques to reduce the number of records for comparison and utilizing clustering algorithms to remove similar records from comparison.

The systems and methods described herein additionally provide practical applications of machine learning systems to match solve the technical problem of matching large number of records to provide a tangible result which identifies procurement opportunities based on past procurements and past expenses. The machine learning systems described herein provide improvements to record matching through computation of similarity values in vectorized record descriptions. Thus, the systems and methods described herein provide a technical solution to a technical problem through the practical application of machine learning systems in a unique manner.

Hardware Overview

According to one embodiment, the techniques described herein are implemented by one or more special-purpose computing devices. The special-purpose computing devices may be hard-wired to perform the techniques, or may include digital electronic devices such as one or more application-specific integrated circuits (ASICs) or field programmable gate arrays (FPGAs) that are persistently programmed to perform the techniques, or may include one or more general purpose hardware processors programmed to perform the techniques pursuant to program instructions in firmware, memory, other storage, or a combination. Such special-purpose computing devices may also combine custom hard-wired logic, ASICs, or FPGAs with custom programming to accomplish the techniques. The special-purpose computing devices may be desktop computer systems, portable computer systems, handheld devices, networking devices or any other device that incorporates hard-wired and/or program logic to implement the techniques.

For example, FIG. 7 is a block diagram that illustrates a computer system 700 upon which an embodiment of the disclosure may be implemented. Computer system 700 includes a bus 702 or other communication mechanism for communicating information, and a hardware processor 704 coupled with bus 702 for processing information. Hardware processor 704 may be, for example, a general purpose microprocessor.

Computer system 700 also includes a main memory 706, such as a random access memory (RAM) or other dynamic storage device, coupled to bus 702 for storing information and instructions to be executed by processor 704. Main memory 706 also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed by processor 704. Such instructions, when stored in non-transitory storage media accessible to processor 704, render computer system 700 into a special-purpose machine that is customized to perform the operations specified in the instructions.

Computer system 700 further includes a read only memory (ROM) 708 or other static storage device coupled to bus 702 for storing static information and instructions for processor 704. A storage device 710, such as a magnetic disk, optical disk, or solid-state drive is provided and coupled to bus 702 for storing information and instructions.

Computer system 700 may be coupled via bus 702 to a display 712, such as a cathode ray tube (CRT), for displaying information to a computer user. An input device 714, including alphanumeric and other keys, is coupled to bus 702 for communicating information and command selections to processor 704. Another type of user input device is cursor control 716, such as a mouse, a trackball, or cursor direction keys for communicating direction information and command selections to processor 704 and for controlling cursor movement on display 712. This input device typically has two degrees of freedom in two axes, a first axis (e.g., x) and a second axis (e.g., y), that allows the device to specify positions in a plane.

Computer system 700 may implement the techniques described herein using customized hard-wired logic, one or more ASICs or FPGAs, firmware and/or program logic which in combination with the computer system causes or programs computer system 700 to be a special-purpose machine. According to one embodiment, the techniques herein are performed by computer system 700 in response to processor 704 executing one or more sequences of one or more instructions contained in main memory 706. Such instructions may be read into main memory 706 from another storage medium, such as storage device 710. Execution of the sequences of instructions contained in main memory 706 causes processor 704 to perform the process steps described herein. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions.

The term “storage media” as used herein refers to any non-transitory media that store data and/or instructions that cause a machine to operate in a specific fashion. Such storage media may comprise non-volatile media and/or volatile media. Non-volatile media includes, for example, optical disks, magnetic disks, or solid-state drives, such as storage device 710. Volatile media includes dynamic memory, such as main memory 706. Common forms of storage media include, for example, a floppy disk, a flexible disk, hard disk, solid-state drive, magnetic tape, or any other magnetic data storage medium, a CD-ROM, any other optical data storage medium, any physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM, NVRAM, any other memory chip or cartridge.

Storage media is distinct from but may be used in conjunction with transmission media. Transmission media participates in transferring information between storage media. For example, transmission media includes coaxial cables, copper wire and fiber optics, including the wires that comprise bus 702. Transmission media can also take the form of acoustic or light waves, such as those generated during radio-wave and infra-red data communications.

Various forms of media may be involved in carrying one or more sequences of one or more instructions to processor 704 for execution. For example, the instructions may initially be carried on a magnetic disk or solid-state drive of a remote computer. The remote computer can load the instructions into its dynamic memory and send the instructions over a telephone line using a modem. A modem local to computer system 700 can receive the data on the telephone line and use an infra-red transmitter to convert the data to an infra-red signal. An infra-red detector can receive the data carried in the infra-red signal and appropriate circuitry can place the data on bus 702. Bus 702 carries the data to main memory 706, from which processor 704 retrieves and executes the instructions. The instructions received by main memory 706 may optionally be stored on storage device 710 either before or after execution by processor 704.

Computer system 700 also includes a communication interface 718 coupled to bus 702. Communication interface 718 provides a two-way data communication coupling to a network link 720 that is connected to a local network 722. For example, communication interface 718 may be an integrated services digital network (ISDN) card, cable modem, satellite modem, or a modem to provide a data communication connection to a corresponding type of telephone line. As another example, communication interface 718 may be a local area network (LAN) card to provide a data communication connection to a compatible LAN. Wireless links may also be implemented. In any such implementation, communication interface 718 sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information.

Network link 720 typically provides data communication through one or more networks to other data devices. For example, network link 720 may provide a connection through local network 722 to a host computer 724 or to data equipment operated by an Internet Service Provider (ISP) 726. ISP 726 in turn provides data communication services through the world wide packet data communication network now commonly referred to as the “Internet” 728. Local network 722 and Internet 728 both use electrical, electromagnetic or optical signals that carry digital data streams. The signals through the various networks and the signals on network link 720 and through communication interface 718, which carry the digital data to and from computer system 700, are example forms of transmission media.

Computer system 700 can send messages and receive data, including program code, through the network(s), network link 720 and communication interface 718. In the Internet example, a server 730 might transmit a requested code for an application program through Internet 728, ISP 726, local network 722 and communication interface 718.

The received code may be executed by processor 704 as it is received, and/or stored in storage device 710, or other non-volatile storage for later execution.

The term “cloud computing” is generally used herein to describe a computing model which enables on-demand access to a shared pool of computing resources, such as computer networks, servers, software applications, and services, and which allows for rapid provisioning and release of resources with minimal management effort or service provider interaction.

A cloud computing environment (sometimes referred to as a cloud environment, or a cloud) can be implemented in a variety of different ways to best suit different requirements. For example, in a public cloud environment, the underlying computing infrastructure is owned by an organization that makes its cloud services available to other organizations or to the general public. In contrast, a private cloud environment is generally intended solely for use by, or within, a single organization. A community cloud is intended to be shared by several organizations within a community; while a hybrid cloud comprises two or more types of cloud (e.g., private, community, or public) that are bound together by data and application portability.

Generally, a cloud computing model enables some of those responsibilities which previously may have been provided by an organization's own information technology department, to instead be delivered as service layers within a cloud environment, for use by consumers (either within or external to the organization, according to the cloud's public/private nature). Depending on the particular implementation, the precise definition of components or features provided by or within each cloud service layer can vary, but common examples include: Software as a Service (SaaS), in which consumers use software applications that are running upon a cloud infrastructure, while a SaaS provider manages or controls the underlying cloud infrastructure and applications. Platform as a Service (PaaS), in which consumers can use software programming languages and development tools supported by a PaaS provider to develop, deploy, and otherwise control their own applications, while the PaaS provider manages or controls other aspects of the cloud environment (i.e., everything below the run-time execution environment). Infrastructure as a Service (IaaS), in which consumers can deploy and run arbitrary software applications, and/or provision processing, storage, networks, and other fundamental computing resources, while an IaaS provider manages or controls the underlying physical cloud infrastructure (i.e., everything below the operating system layer). Database as a Service (DBaaS) in which consumers use a database server or Database Management System that is running upon a cloud infrastructure, while a DbaaS provider manages or controls the underlying cloud infrastructure, applications, and servers, including one or more database servers.

In the foregoing specification, embodiments have been described with reference to numerous specific details that may vary from implementation to implementation. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense. The sole and exclusive indicator of the scope of the disclosure, and what is intended by the applicants to be the scope of the disclosure, is the literal and equivalent scope of the set of claims that issue from this application, in the specific form in which such claims issue, including any subsequent correction. 

What is claimed is:
 1. A computer-implemented method executed in an online real-time e-procurement server computer system, the method comprising: storing a first plurality of digital electronic records for a first entity in an electronic digital storage device, the first plurality of digital electronic records comprising a plurality of expense records each identifying a plurality of past post-approved transactions by the first entity that have been processed as employee expenses; storing a second plurality of digital electronic records for the first entity in the electronic digital storage device, the second plurality of digital electronic records comprising a first plurality of invoice records each identifying a plurality of past pre-approved transactions by the first entity that have been processed using an enterprise procurement workflow in the e-procurement system; using a first machine learning system, normalizing the first plurality of digital electronic records to one or more pre-defined categories, the one or more predefined categories including a possible pre-approved category and a non-possible pre-approved category, the possible pre-approved category indicating one or more possibly procurable expenses; using the first machine learning system, determining that a subset of the first plurality of digital electronic records corresponds to the possible pre-approved category; in response to determining that the subset of the first plurality of digital electronic records corresponds to the possible pre-approved category: using a second machine learning system, matching one or more particular digital electronic records of the subset of the first plurality of digital electronic records with one or more records of the second plurality of digital electronic records; causing displaying, on a client computing device, digital electronic data identifying transactions corresponding to the one or more particular digital electronic records as potential pre-approved transactions, the potential pre-approved transactions being capable of processing as procurement transactions by the first entity using an enterprise procurement workflow in the e-procurement system, the displaying including first and second numeric values respectively specifying a first total cost of the first plurality of digital electronic records and a second total cost of the one or more particular digital electronic records.
 2. The method of claim 1, further comprising: storing a third plurality of digital electronic records for a plurality of second entities, the third plurality of digital electronic records comprising a second plurality of invoice records identifying a plurality of past pre-approved transactions by the plurality of second entities; using a third machine learning system, matching one or more second particular digital electronic records of the subset of the first plurality of digital electronic records with one or more records of the third plurality of digital electronic records; causing displaying, on the client computing device, digital electronic data identifying the transactions corresponding to the one or more second particular digital electronic records as the potential pre-approved transactions.
 3. The method of claim 2, wherein displaying the digital electronic data identifying the transactions corresponding to the one or more particular digital electronic records as the potential pre-approved transactions comprises: displaying a graph comprising: a first portion which identifies past post-approved transactions as the potential pre-approved transactions based on the second plurality of digital electronic records; a second portion which identifies past post-approved transactions as the potential pre-approved transactions based on the third plurality of digital electronic records; a third portion which identifies past post-approved transactions that are not the potential pre-approved transactions.
 4. The method of claim 3, wherein the graph comprises a plurality of sections corresponding to a plurality of first entity defined categories.
 5. The method of claim 4, further comprising: receiving input selecting a particular section of the plurality of sections of the graph, the particular section corresponding to a particular category of the first entity defined categories; in response to receiving the input, causing displaying data identifying a plurality of past post-approved transactions corresponding the particular category with additional data identifying, for each transaction, whether the transaction is a potential pre-approved transaction.
 6. The method of claim 1, further comprising: storing one or more relationship records defining relationships between the first entity and at least one other entity; matching one or more second particular digital electronic records of the subset of the first plurality of digital electronic records with the one or more relationship records; causing displaying, on the client computing device, digital electronic data identifying the transactions corresponding to the one or more second particular digital electronic records as the potential pre-approved transactions.
 7. The method of claim 6, further comprising: storing one or more digital electronic catalogs identifying pre-approved transactions between the first entity and the at least one other entity; wherein matching the one or more second particular digital electronic records with the one or more relationship records comprises determining that one or more transactions described in the one or more second particular digital electronic records corresponds to one or more of the pre-approved transactions between the first entity and the at least one other entity.
 8. The method of claim 1, further comprising: receiving, through a query interface, one or more queries with one or more first query parameters; storing the one or more queries with the one or more first query parameters as an unsatisfied query; determining that a particular transaction of the transactions corresponding to the one or more particular digital electronic records corresponds to the one or more queries; identifying one or more second query parameters which would cause a system executing the query to identify a particular pre-approved transaction; generating and displaying a recommendation to replace the one or more first query parameters with the one or more second query parameters.
 9. The method of claim 1, further comprising: receiving input defining a new transaction for post-approval; using the first machine learning system, determining that the new transaction corresponds to the possible pre-approved category; in response to determining that the new transaction corresponds to the possible pre-approved category: using the second machine learning system, matching the new transaction to one or more of the second plurality of digital electronic records; causing displaying digital electronic data identifying the new transaction as a potential pre-approved transaction.
 10. The method of claim 1, further comprising: identifying, for each transaction of the subset of the plurality of past post-approved transactions, a submitter of the transaction for post-approval of a plurality of submitters; displaying, for a particular submitter of the plurality of submitters, electronic digital data identifying a portion of transactions submitted by the particular submitter for post-approval that were identified as the potential pre-approved transactions.
 11. A system comprising: one or more processors: a memory, storing instructions, which, when executed by the one or more processors, causes performance of: storing a first plurality of digital electronic records for a first entity in an electronic digital storage device, the first plurality of digital electronic records comprising a plurality of expense records each identifying a plurality of past post-approved transactions by the first entity that have been processed as employee expenses; storing a second plurality of digital electronic records for the first entity in the electronic digital storage device, the second plurality of digital electronic records comprising a first plurality of invoice records each identifying a plurality of past pre-approved transactions by the first entity that have been processed using an enterprise procurement workflow in the e-procurement system; using a first machine learning system, normalizing the first plurality of digital electronic records to one or more pre-defined categories, the one or more predefined categories including a possible pre-approved category and a non-possible pre-approved category, the possible pre-approved category indicating one or more possibly procurable expenses; using the first machine learning system, determining that a subset of the first plurality of digital electronic records corresponds to the possible pre-approved category; in response to determining that the subset of the first plurality of digital electronic records corresponds to the possible pre-approved category: using a second machine learning system, matching one or more particular digital electronic records of the subset of the first plurality of digital electronic records with one or more records of the second plurality of digital electronic records; causing displaying, on a client computing device, digital electronic data identifying transactions corresponding to the one or more particular digital electronic records as potential pre-approved transactions, the potential pre-approved transactions being capable of processing as procurement transactions by the first entity using an enterprise procurement workflow in the e-procurement system, the displaying including first and second numeric values respectively specifying a first total cost of the first plurality of digital electronic records and a second total of the one or more particular digital electronic records.
 12. The system of claim 11, wherein the instructions, when executed by the one or more processors, further causes performance of: storing a third plurality of digital electronic records for a plurality of second entities, the third plurality of digital electronic records comprising a second plurality of invoice records identifying a plurality of past pre-approved transactions by the plurality of second entities; using a third machine learning system, matching one or more second particular digital electronic records of the subset of the first plurality of digital electronic records with one or more records of the third plurality of digital electronic records; causing displaying, on the client computing device, digital electronic data identifying the transactions corresponding to the one or more second particular digital electronic records as the potential pre-approved transactions.
 13. The system of claim 12, wherein displaying the digital electronic data identifying the transactions corresponding to the one or more particular digital electronic records as the potential pre-approved transactions comprises: displaying a graph comprising: a first portion which identifies past post-approved transactions as the potential pre-approved transactions based on the second plurality of digital electronic records; a second portion which identifies past post-approved transactions as the potential pre-approved transactions based on the third plurality of digital electronic records; a third portion which identifies past post-approved transactions that are not the potential pre-approved transactions.
 14. The system of claim 13, wherein the graph comprises a plurality of sections corresponding to a plurality of first entity defined categories.
 15. The system of claim 14, wherein the instructions, when executed by the one or more processors, further causes performance of: receiving input selecting a particular section of the plurality of sections of the graph, the particular section corresponding to a particular category of the first entity defined categories; in response to receiving the input, causing displaying data identifying a plurality of past post-approved transactions corresponding the particular category with additional data identifying, for each transaction, whether the transaction is a potential pre-approved transaction.
 16. The system of claim 11, wherein the instructions, when executed by the one or more processors, further causes performance of: storing one or more relationship records defining relationships between the first entity and at least one other entity; matching one or more second particular digital electronic records of the subset of the first plurality of digital electronic records with the one or more relationship records; causing displaying, on the client computing device, digital electronic data identifying the transactions corresponding to the one or more second particular digital electronic records as the potential pre-approved transactions.
 17. The system of claim 16, wherein the instructions, when executed by the one or more processors, further causes performance of: storing one or more digital electronic catalogs identifying pre-approved transactions between the first entity and the at least one other entity; wherein matching the one or more second particular digital electronic records with the one or more relationship records comprises determining that one or more transactions described in the one or more second particular digital electronic records corresponds to one or more of the pre-approved transactions between the first entity and the at least one other entity.
 18. The system of claim 11, wherein the instructions, when executed by the one or more processors, further causes performance of: receiving, through a query interface, one or more queries with one or more first query parameters; storing the one or more queries with the one or more first query parameters as an unsatisfied query; determining that a particular transaction of the transactions corresponding to the one or more particular digital electronic records corresponds to the one or more queries; identifying one or more second query parameters which would cause a system executing the query to identify a particular pre-approved transaction; generating and displaying a recommendation to replace the one or more first query parameters with the one or more second query parameters.
 19. The system of claim 11, wherein the instructions, when executed by the one or more processors, further causes performance of: receiving input defining a new transaction for post-approval; using the first machine learning system, determining that the new transaction corresponds to the possible pre-approved category; in response to determining that the new transaction corresponds to the possible pre-approved category: using the second machine learning system, matching the new transaction to one or more of the second plurality of digital electronic records; causing displaying digital electronic data identifying the new transaction as a potential pre-approved transaction.
 20. The system of claim 11, wherein the instructions, when executed by the one or more processors, further causes performance of: identifying, for each transaction of the subset of the plurality of past post-approved transactions, a submitter of the transaction for post-approval of a plurality of submitters; displaying, for a particular submitter of the plurality of submitters, electronic digital data identifying a portion of transactions submitted by the particular submitter for post-approval that were identified as the potential pre-approved transactions. 